#pragma once
#include "Texture.h"
#include "Mesh.h"
#include "Light.h"
#include "Material.h"
#include "Transform.h"

class L_PROJ_EXP CNode : public CMesh
{
	friend class CLittleEngine;
public:
	CNode(void);
	virtual ~CNode(void);

	void SetName(wstring strName);
	void SetRotate(Vec3f vRot);
	void SetScale(Vec3f vScale);
	void SetTrans(Vec3f vTrans);
	BOOL IsLightEnable(int nLightIdx);
	void SetLightEnable(BOOL bEnable, int nLightIdx);
	BOOL AddChild(CNode* pNode);
	BOOL AddTexture(wstring strFileName);

private:
	wstring m_strName;
	CNode* m_pParent;
	list<CNode*> m_listChild;
	Vec3f m_vRot;
	Vec3f m_vTrans;
	Vec3f m_vScale;
	BOOL m_bLightEnable[LIGHT_COUNT];
	CMaterial m_oMaterial;

private:
	vector<CTexture*> m_vTexture;
};
